package com.stefanini.pe.bbva.bp.in.dao.iface;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.stefanini.pe.bbva.bp.in.to.DetalleRebalanceoTO;
import com.stefanini.pe.bbva.bp.in.to.Rebalanceo;

public interface RebalanceoDAOIface {
	public List<Rebalanceo> listarHistoricosRebalanceo(Rebalanceo oRebalanceo) throws Exception;
	public List<HashMap> listarArchivosRebalanceo(Rebalanceo oRebalanceo);
	public List<HashMap> listarArchivosRebalanceoNC(Rebalanceo oRebalanceo);
	public List<HashMap> listarPosicionContrato(String codCliente);
	public List<HashMap> cambiarEstadoRebalanceo(String codCliente,String idRebalanceo,String estado,
			String observaciones) throws Exception;
	public List<HashMap> cambiarEstadoRebalanceoNC(String codNoCliente,String idRebalanceo,String estado);
	public List<HashMap> listarPosicionDetalle(String codCliente);
	public HashMap validarRebalanceo(String codCliente) throws Exception;
	public HashMap validarRebalanceoNC(String codCliente);
	public List<Rebalanceo> listarHistoricosRebalanceoNC(Rebalanceo oRebalanceo);
	public List<Rebalanceo> listarRebalanceoAnual(String anio, String codUsuAsesor);
	public List<Rebalanceo> listarResultadoRebalanceo(String codUsuAsesor);
	public String clonarRebalanceo(String idrebalanceo);
	/*
	 * PESTANA DE GESTION DE REBALANCEO DE RESULTADOS POR PERIODO
	 * */
	public List<Rebalanceo> listarResultadoPorPeriodo(String codUsuAsesor);
	public List<Map<String,Object>> listarDetalleRebalanceo(String idRebalanceo);
	public List<Map<String,Object>> listarDetalleRebalanceoDistribucion(String idRebalanceo);
	public Map<String,ArrayList<DetalleRebalanceoTO>> obtenerDetalle(String idRebalanceo) throws Exception;
	public void guardarInformacionAdicionalBonos(String nemotecnico,
													String emisor, 
													String codsector,
													String codTipoInstrumento,
													String codMoneda,
													String montoInvertir,
													String rendimiento,
													String fechaInicio,
													String fechaVencimiento,
													String duracion,
													String codAmortizacion,
													String codFrecuenciaPago,
													String riesgoCrediticio,
													String idRebalanceo, String flagPreInsert) throws Exception;
	
	public void guardarInformacionAdicionalOperaciones(String codMoneda,
														  String precioContado,
														  String precioPlazo,
														  String rendimiento,
														  String fechaInicio,
														  String fechaVencimiento,
														  String montoInvertir,
														  String idRebalanceo, String flagPreInsert) throws Exception;
	
	public void guardarInformacionAdicionalAcciones(String nemotecnico,
													   String empresa,
													   String codsector,
													   String codMoneda,
													   String precioObjetivo,
													   String cotizacionAnual,
													   String maximo,
													   String minimo,
													   String participacionPortafolio,
													   String montoInvertir,
													   String idRebalanceo, String flagPreInsert) throws Exception;
	
	public void guardarInformacionAdicionalDepEstructurados(String instrumento,
															   String subyacente,																	
															   String codMoneda,																
															   String cap,
															   String timg,																	
															   String montoInvertir,																
															   String idRebalanceo, String flagPreInsert) throws Exception;
	
	public void guardarInformacionAdicionalOpciones(String tipo,
														String 	subyacente,	
														String clase,
														String codMoneda,																
														String primaInversion,
														String montoInversion,																	
														String porcentajePrima,	
														String plazo,
														String idRebalanceo, String flagPreInsert) throws Exception;
	
	public String listarIdsCodContrato(String idrebalanceocontrato);
	
	public List<Map> listarAutocompleteNemotecnicoBono(String inNemoTecnico) throws Exception;
	public List<Map> listarAutocompleteNemotecnicoAcciones(String inNemoTecnico) throws Exception;
};
